package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.EstadoEmpresaFacade;
import sv.com.bolsaTrabajo.model.entities.EstadoEmpresa;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class EstadoEmpresaMB extends ManejadorAccion {

    @EJB
    private EstadoEmpresaFacade estadoEmpresaFacade;
    private EstadoEmpresa estadoEmpresa;
    private List<EstadoEmpresa> estadoEmpresas;

    /**
     * Constructor
     */
    public EstadoEmpresaMB() {
        limpiarEstadoEmp();
        estadoEmpresa = new EstadoEmpresa();
    }

    public void limpiarEstadoEmp() {
        setEstadoEmpresa(new EstadoEmpresa());
    }

    public List<EstadoEmpresa> getEstadoEmpresas() {
        estadoEmpresas = estadoEmpresaFacade.obtenerTodos();
        return estadoEmpresas;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear Estado Empresa");
            getEstadoEmpresa().setFechaMod(new Date());

            if (estadoEmpresa.getIdEstadoEmpresa() == null) {
                estadoEmpresaFacade.crear(estadoEmpresa);
                lanzarMensajeInformacion("Exito", "Estado Empresa guardada correctamente");
            } else {
                estadoEmpresaFacade.modificar(estadoEmpresa);
                lanzarMensajeInformacion("Exito", "Estado Empresa modificada correctamente");               
            }
            RequestContext.getCurrentInstance().update("IDFrmEstadoEmpresa");
            RequestContext.getCurrentInstance().execute("WVDialogEstadoEmpresa.hide();");
        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Estado Empresa ", e);
        }
    }

    public void modificarEntidad(EstadoEmpresa modEstadoEmpresa) {
        try {
            this.estadoEmpresa = modEstadoEmpresa;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Estado Empresa", e);

        }
        RequestContext.getCurrentInstance().update("");
    }

    /**
     * ****************** Getters and Setter ********************
     */
    public EstadoEmpresaFacade getEstadoEmpresaFacade() {
        return estadoEmpresaFacade;
    }

    public void setEstadoEmpresaFacade(EstadoEmpresaFacade estadoEmpresaFacade) {
        this.estadoEmpresaFacade = estadoEmpresaFacade;
    }

    public EstadoEmpresa getEstadoEmpresa() {
        return estadoEmpresa;
    }

    public void setEstadoEmpresa(EstadoEmpresa estadoEmpresa) {
        this.estadoEmpresa = estadoEmpresa;
    }   

 }
